package com.yh.dao;
/**
 * DAO常见的方法
 */
import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;

public interface DAOSupport<E> {
	/**
	 * 添加一个实体
	 * @param entity
	 * @return 影响行数
	 * @throws SQLException
	 */
	int insert(E entity) throws SQLException;
	
	/**
	 * 根据主键Id来更新修改其他列的数据
	 * @param entity
	 * @return 影响的行数
	 * @throws SQLException
	 */
	int updateById(E entity) throws SQLException;
	
	/**
	 * 根据主键来删除一条记录(数据)
	 * @param entity
	 * @return 影响行数
	 * @throws SQLException
	 */
	int deleteById(Serializable id) throws SQLException;
	
	/**
	 * 根据主键来查询一条记录
	 * @param id
	 * @return 实体对象
	 * @throws SQLException
	 */
	E selectById(Serializable id) throws SQLException;
	
	/**
	 * 查找索引index开始len条记录
	 * @param index
	 * @param len
	 * @return 实体对象数组
	 * @throws SQLException
	 */
	List<E> select(int index,int len) throws SQLException;
	
	/**
	 * 统计所有的记录数
	 * @return 所有的记录数
	 * @throws SQLException
	 */
	long count() throws SQLException;
}
